我有以下问题: 我想使用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 =“Custom”
authorizationPolicies
添加policyType =“CustomPolicy.CustomPolicy,CustomPolicy”/>
authorizationPolicies
system.serviceModel
对于aspx页面我暂时没有安全性,基本上我只想从请求中获取凭据并使用现有代码验证它们。
感谢任何帮助, 阿德里安
答案 0 :(得分:1)
你基本上有两种选择。您可以使用HTTP传输身份验证或基于表单的身份验证。
对于传输身份验证,您必须设置IIS以保护客户端尝试访问的资源。此资源可以是您的文件,也可以是ASPX页面。然后,ASPX页面将能够读取HttpContext.Current.User变量,并能够确定该用户是否可以访问该资源。
对于基于Forms的身份验证,IIS不需要对请求进行身份验证。相反,您将一个表单发布到webform,然后可以查看请求中的用户名/密码并决定是否允许访问。
Forms Based Auth(FBA)的一种变体是在POST正文中发布用户名/密码,然后ASPX页面可以读取,解码并决定是否允许访问。