C# Mvc\u布局请求。已验证
我不知道我问的问题是否正确。我正在开发MVC web应用程序。在这里我有C# Mvc\u布局请求。已验证,c#,asp.net-mvc-4,C#,Asp.net Mvc 4,我不知道我问的问题是否正确。我正在开发MVC web应用程序。在这里我有Home/Index方法。当我运行网站时,它会在url中显示我,它指向Home/Index方法。在索引页面上,我展示了一些横幅和一些其他内容。当我当时登录到我的站点时,我希望路由到同一页面,即http://localhost:25537/指向主页/索引,但内容应该更改 这是我的routeconfig routes.MapRoute( name: "Default", url:
Home/Index
方法。当我运行网站时,它会在url
中显示我,它指向Home/Index
方法。在索引
页面上,我展示了一些横幅和一些其他内容。当我当时登录到我的站点时,我希望路由到同一页面,即http://localhost:25537/
指向主页/索引
,但内容应该更改
这是我的routeconfig
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Account", action = "Index", id = UrlParameter.Optional }
);
如何实现这样的视图
?如何路由到同一页面,但内容应该更改
如果我在
Index
页面中使用了Request.IsAuthenticate
,那么它会在登录后显示。但我有一个疑问。此Home/index
定义为[AllowAnonymous]
,但登录后应为[Authorize]
控制器操作是否用[Authorize]
属性修饰并不重要。该属性仅检查是否允许您在不登录的情况下查看页面
因此,在您看来,您可以简单地使用:
@if(Request.IsAuthenticated){
// some Stuff you want to show if the user has logged in
}
如果我在索引页面中使用了Request.IsAuthenticate
,那么它会在登录后显示
你就是这样做的。在您看来,您将在检查中包装仅经过身份验证的内容。比如:
<div>
public content
</div>
@if (Request.IsAuthenticated)
{
<div>
authenticated-only content
</div>
}
公共内容
@如果(请求已验证)
{
仅认证内容
}
当且仅当发出请求的用户经过身份验证时,该内容才会交付给客户端
此主页/索引定义为[AllowAnonymous]
,但登录后应为[Authorize]
不,不应该。索引操作仍然允许匿名访问。它返回的视图只是有一些不为匿名用户显示的部分。但是这些用户仍然可以请求操作本身。谢谢您的回复。所以我的实现是有效的,对吗?登录方法
[Authorize]
或[AllowAnonymous]
后没有关系,实际上我没有得到这个问题的标题。这就是为什么我提出了Mvc\u布局请求。IsAuthenticated
@AjayPunekar:从某种意义上讲,这些属性将决定请求是否需要授权,或者请求是否可以由匿名用户进行。在绝大多数情况下,Home/Index
允许匿名访问。如果您想让用户在登录之前能够访问主页/索引
,则需要允许匿名访问。@AjayPunekar:不清楚您的意思。您从何处重定向以及重定向到何处?为什么要执行此重定向?当我运行站点时,它会显示默认控制器及其操作,即索引页。我显示的横幅,一些其他内容的索引页。当我登录时,我不想在url中显示这样的内容http://localhost:25537/home/someView
。我只想显示http://localhost:25537/