asp.net mvc中要允许部分视图不用登陆验证,怎么设置? 5
我在web.config中设置类似<authenticationmode="Forms"><formsname=".ASPXAUTH"loginUrl="~/home/l...
我在web.config中设置类似
<authentication mode="Forms">
<forms name=".ASPXAUTH" loginUrl="~/home/login" protection="All" path="/" timeout="20"/>
</authentication>
<authorization>
<deny users="?"></deny>
</authorization>
以后所有的视图都要登陆才能访问了,要允许部分视图不用登陆就可以访问,该怎么设置。
要允许部分控制器(该控制器不返回视图,只处理数据)不用登陆就可以访问,怎么设置?? 展开
<authentication mode="Forms">
<forms name=".ASPXAUTH" loginUrl="~/home/login" protection="All" path="/" timeout="20"/>
</authentication>
<authorization>
<deny users="?"></deny>
</authorization>
以后所有的视图都要登陆才能访问了,要允许部分视图不用登陆就可以访问,该怎么设置。
要允许部分控制器(该控制器不返回视图,只处理数据)不用登陆就可以访问,怎么设置?? 展开
展开全部
<authorization>
<deny users="?"></deny>
</authorization>
这个设置代表 拒绝匿名用户访问就是必须登陆才能访问
你可以通过设置session来控制登陆用户的访问 在需要不登陆就访问的页面不做session判断就行
刚看了看authentication forms里面有一条(Forms Authentication可能会在验证后将用户凭证放在Cookie中,name属性决定了该Cookie的名字。通过FormsAuthentication.FormsCookieName属性可以得到该配置值) FormsAuthentication.RedirectFromLoginPage(userName, rememberMe)
这个是用来设置安全COOKie并回到你在登录操作前请求的那个页面
你既然知道这个还玩mvc 应该不是新手这里面会有关于cookie的安全验证 用cookie验证是否登陆页可以
<deny users="?"></deny>
</authorization>
这个设置代表 拒绝匿名用户访问就是必须登陆才能访问
你可以通过设置session来控制登陆用户的访问 在需要不登陆就访问的页面不做session判断就行
刚看了看authentication forms里面有一条(Forms Authentication可能会在验证后将用户凭证放在Cookie中,name属性决定了该Cookie的名字。通过FormsAuthentication.FormsCookieName属性可以得到该配置值) FormsAuthentication.RedirectFromLoginPage(userName, rememberMe)
这个是用来设置安全COOKie并回到你在登录操作前请求的那个页面
你既然知道这个还玩mvc 应该不是新手这里面会有关于cookie的安全验证 用cookie验证是否登陆页可以
2016-04-12 · 百度知道合伙人官方认证企业
育知同创教育
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】
向TA提问
关注
展开全部
可以设置登录白名单,如果是在白名单中的用户登录,就不需要验证登录态,直接查看网页。
首先,要准备一份白名单的配置,使用XML作为配置形式,如下:
<?xml version="1.0" encoding="utf-8" ?>
<config>
<tag name="*">
<attr name="style">^((font|color)\s*:\s*[^;]+;\s*)*$</attr>
</tag>
<tag name="a">
<attr name="href">^[a-zA-Z]+://.+$</attr>
<attr name="title">.+</attr>
</tag>
...
</config>
根元素下的每个tag元素表示一个合法的HTML元素,其中星号表示对所有元素的统一设置,例如上面的配置便开放了所有元素的style属性中的font和color两个设置,以及a元素中的href和title属性,其中href还必须是“{scheme}://xxx”的形式,这样就避免了“javascript:alert(1)”这样的XSS问题。
其次写filter进行过滤:
public class FilterConfig : Dictionary<string, TagConfig>
{
public FilterConfig()
: base(StringComparer.OrdinalIgnoreCase)
{ }
public FilterConfig(XElement config)
{
var wildcardElement = config
.Elements("tag")
.SingleOrDefault(e => e.Attribute("name").Value == "*");
var wildcardConfig = wildcardElement == null ? null :
new TagConfig(wildcardElement);
foreach (var ele in config
.Elements("tag")
.Where(e => e.Attribute("name").Value != "*"))
{
var name = ele.Attribute("name").Value;
var tagConfig = new TagConfig(ele);
foreach (var pair in wildcardConfig)
{
if (!tagConfig.ContainsKey(pair.Key))
{
tagConfig.Add(pair.Key, pair.Value);
}
}
this.Add(name, tagConfig);
}
}
}
首先,要准备一份白名单的配置,使用XML作为配置形式,如下:
<?xml version="1.0" encoding="utf-8" ?>
<config>
<tag name="*">
<attr name="style">^((font|color)\s*:\s*[^;]+;\s*)*$</attr>
</tag>
<tag name="a">
<attr name="href">^[a-zA-Z]+://.+$</attr>
<attr name="title">.+</attr>
</tag>
...
</config>
根元素下的每个tag元素表示一个合法的HTML元素,其中星号表示对所有元素的统一设置,例如上面的配置便开放了所有元素的style属性中的font和color两个设置,以及a元素中的href和title属性,其中href还必须是“{scheme}://xxx”的形式,这样就避免了“javascript:alert(1)”这样的XSS问题。
其次写filter进行过滤:
public class FilterConfig : Dictionary<string, TagConfig>
{
public FilterConfig()
: base(StringComparer.OrdinalIgnoreCase)
{ }
public FilterConfig(XElement config)
{
var wildcardElement = config
.Elements("tag")
.SingleOrDefault(e => e.Attribute("name").Value == "*");
var wildcardConfig = wildcardElement == null ? null :
new TagConfig(wildcardElement);
foreach (var ele in config
.Elements("tag")
.Where(e => e.Attribute("name").Value != "*"))
{
var name = ele.Attribute("name").Value;
var tagConfig = new TagConfig(ele);
foreach (var pair in wildcardConfig)
{
if (!tagConfig.ContainsKey(pair.Key))
{
tagConfig.Add(pair.Key, pair.Value);
}
}
this.Add(name, tagConfig);
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询