2009-12-02 143 views
0

我遇到以下问题: 我想要使用asp.net页面保护IIS下托管的某些文件的访问权限。如何处理ASP.NET身份验证

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页面是哪个主机与 自定义的策略验证的WCF服务的Web应用程序托管:

system.serviceModel>
serviceAuthorization principalPermissionMode = “自定义”
authorizationPolicies
添加的PolicyType =“CustomPolicy .CustomPolicy,CustomPolicy“/>
授权政策
system.serviceModel

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

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

+0

可以提供IIS设置的详细信息,特别是用于身份验证吗? – Irfy 2009-12-02 15:57:55

+0

更新了问题 – 2009-12-02 16:10:08

回答

1

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

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

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

Forms Based Auth(FBA)的一个变体是在POST主体中发布用户名/密码,然后ASPX页面可以读取,解码并决定是否允许访问。

+0

您可以举例说明如何使用HttpWebRequest完成Form Based Auth? – 2009-12-02 18:54:49

+0

想通了,谢谢 – 2009-12-02 20:36:06