ASP.NET单页授权

我有一个ASP.NET应用程序,其中大部分页面都可以通过单一登录模块(可将用户名设置为Session数组变量)访问所有经过身份验证的用户。 现在我有一个文件夹A包含一个B.aspx页面和一个允许访问该页面B.aspx的用户名单。

我的问题:我如何优雅地授权这一个页面的这些用户,或者更好地为这个文件夹授权。 可以使用文件夹A中的Web.config文件中的位置标记完成吗? 如果是这样,我如何将该配置与自定义代码连接以检查存储在会话变量中的用户名是否是该文件夹或页面的授权用户之一? 我可以使用自定义membershipprovider吗?

提前致谢 !


首先,由于会话cookie中的用户名不是处理此问题的好方法,因此您会废弃这种被嘲笑的安全方法。 好吧,也许有点太过分了,因为低安全性可能适合你。 如果是这样,您可以为检查用户名并与可更新列表进行比较的页面编写自定义处理程序。

新增功能:通过Session对象,您可以获得更高的安全性,因为会话令牌已发送并且名称保留在会话中,但Membership位(下方)会处理将特定会话转换为用户而不用您的自定义“此用户正在使用此会话“方法。 是的,最终你可以争辩说微软做了一些与你的软件非常相似的东西,但是你将维护工作留给了他们。

回到我原来的方向,ASP.NET中内置了角色和成员资格的概念。 如果您使用这些位,则可以通过设置具有安全限制的新web.config,将安全修剪页面(或者甚至更好的文件夹,以便您可以添加页面)给某些用户(不是很好)或角色(更好)。

关于内置的东西很酷的事情是你可以声明式地设置安全性,并让管道确定用户是否有效,而不需要任何繁重的工作。

关于各种面向ASP.NET的网站上的成员资格和角色信息很多。


可以通过指定用逗号分隔的用户名来实现。


由于您的用户名并未在web.config中定义,而是在某些会话变量中定义,因此您必须为此创建表单身份验证票证

FormsAuthenticationSupport formsAuthenticationSupport = new FormsAuthenticationSupport();
formsAuthenticationSupport.SignIn(UsernameInSession, RoleName, true);

现在您可以在web.config中为UsernameInSession设置身份验证规则和位置标记。

链接地址: http://www.djcxy.com/p/55853.html

上一篇: ASP.NET single page authorization

下一篇: ASP.NET authorization, show browser login dialog