代码之家  ›  专栏  ›  技术社区  ›  Adrian Magdas

如何处理ASP.NET身份验证

  •  0
  • Adrian Magdas  · 技术社区  · 15 年前

    我有以下问题: 我希望使用ASP.NET页保护对IIS下托管的某些文件的访问。 将使用以下方法从另一个应用程序调用该页:

    var request = WebRequest.Create("www.smth.com/protectData.aspx") 
                  as HttpWebRequest;
    request.Credentials = new NetworkCredentials("john doe", "john"); 
    request.PreAuthenticate = true; 
    var response = request.GetResponse(); 
    

    如何读取被调用页(protectdata.aspx)上发送的凭据?

    我有适当的代码来验证凭据…我尝试过实现自定义成员身份,但是 HttpContext.Current.User 是空的。 ASPX页宿主在Web应用程序中,该应用程序宿主通过验证的WCF服务 海关政策:

    System.ServiceModel>
    serviceAuthorization PrincipalPermissionMode=“自定义”
    授权策略
    添加policyType=“custompolicy.custompolicy,custompolicy”/>
    授权策略
    System.ServiceModel(系统服务模型)

    对于ASPX页面,目前我还没有安全措施,基本上我只想从请求中获取凭证,并使用现有代码验证它们。

    感谢您的帮助, 阿德里安

    1 回复  |  直到 15 年前
        1
  •  1
  •   feroze    15 年前

    你基本上有两个选择。您可以使用HTTP传输身份验证或基于表单的身份验证。

    对于传输身份验证,您必须设置IIS以保护客户端尝试访问的资源。此资源可以是您的文件,也可以是ASPX页。然后,aspx页面将能够读取httpcontext.current.user变量,并能够决定该用户是否可以访问该资源。

    对于基于表单的身份验证,IIS不需要对请求进行身份验证。相反,您可以将表单发布到Web表单,然后查看请求中的用户名/密码并决定是否允许访问。

    基于表单的身份验证(FBA)的一个变体是将用户名/密码发布到发布主体中,然后ASPX页可以读取、解码和决定是否允许访问。

    推荐文章