0

我有以下问题:我想使用 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
add policyType="CustomPolicy.CustomPolicy, CustomPolicy" />
authorizationPolicies
system.serviceModel

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

任何帮助表示赞赏,阿德里安

4

1 回答 1

1

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

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

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

基于表单的身份验证 (FBA) 的一种变体是在 POST 正文中发布用户名/密码,然后 ASPX 页面可以读取、解码并决定是否允许访问。

于 2009-12-02T18:23:17.960 回答