Asp.net mvc 防止基于身份验证访问页面
我有一个ASP.NETMVC4网站。当我创建这个网站的时候,我几乎没有网络编程经验,而且我不相信我把它都设置得很好 <>我有页面,如首页、登录、登记,我认为是公共的, 页面,如ViFiPyPin和Actudio,我认为是内部的 还有像仪表板和个人资料这样的私人页面 我觉得公共页面应该被匿名用户访问,但是一旦用户登录,登录和注册就不应该被访问 内部页面我只希望在服务器重定向时可用,而不希望通过浏览器,也就是说,我不希望用户能够键入www.MySite.com/AccountCreated 私人页面仅适用于登录用户 我觉得我的私人页面工作正常,但我不知道如何限制访问上述其他页面。也许我不允许登录用户访问登录页面的想法没有找到 由于网站的ajax特性,我的网站相对较小。我在所有公共页面上使用[AllowAnonymous],但登录用户仍然可以访问这些页面,我不知道如何防止这种情况 我的问题是, 如何防止用户通过地址栏(www.MySite.com/AccountCreated)访问页面 一旦用户登录,如何阻止访问[AllowAnonymous]页面。 编辑Asp.net mvc 防止基于身份验证访问页面,asp.net-mvc,asp.net-mvc-4,authentication,Asp.net Mvc,Asp.net Mvc 4,Authentication,我有一个ASP.NETMVC4网站。当我创建这个网站的时候,我几乎没有网络编程经验,而且我不相信我把它都设置得很好 我有页面,如首页、登录、登记,我认为是公共的, 页面,如ViFiPyPin和Actudio,我认为是内部的 还有像仪表板和个人资料这样的私人页面 我觉得公共页面应该被匿名用户访问,但是一旦用户登录,登录和注册就不应该被访问 内部页面我只希望在服务器重定向时可用,而不希望通过浏览器,也就是说,我不希望用户能够键入www.MySite.com/AccountCreated 私人页面仅适
阻止登录用户访问某些匿名页面(如登录)是否正常?对于第一个问题,您可以使用[Authorize]操作过滤器
对于您的另一个问题,我想您必须编写自己的实现。您需要创建一个新的IAuthorizationFilter并使用它而不是[AllowAnonymous]对于第一个问题,您可以使用[Authorization]操作筛选器
对于您的另一个问题,我想您必须编写自己的实现。您需要创建一个新的IAuthorizationFilter并使用它,而不是[AllowAnonymous]您可以随时检查用户是否已登录。如果他这样做了,他将被重定向到另一个页面:
public ActionResult AccountCreated(some params)
{
if (Request.IsAuthenticated)
{
return RedirectToAction("Index")
}
else
{
// login logic here
}
}
您也可以直接在视图中进行检查:
@if (Request.IsAuthenticated)
{
<span> You are already logged in</span>
}
else
{
//Login form here
}
@if(Request.IsAuthenticated)
{
您已登录
}
其他的
{
//登录表单在这里
}
您可以随时检查用户是否已登录。如果他这样做了,他将被重定向到另一个页面:
public ActionResult AccountCreated(some params)
{
if (Request.IsAuthenticated)
{
return RedirectToAction("Index")
}
else
{
// login logic here
}
}
您也可以直接在视图中进行检查:
@if (Request.IsAuthenticated)
{
<span> You are already logged in</span>
}
else
{
//Login form here
}
@if(Request.IsAuthenticated)
{
您已登录
}
其他的
{
//登录表单在这里
}
只是一些想法(实际上没有尝试过)
- 对于问题1,如果AccountCreated是一个动作,意味着注册表单实际上发布到该URL-,即可以从外部访问它。我建议您对它应用一个属性,这样它将只处理
请求-在这里您可以做的不多POST
- 对于第二点,您可以在动作方法中执行类似的操作
- 对于问题1,如果AccountCreated是一个动作,意味着注册表单实际上发布到该URL-,即可以从外部访问它。我建议您对它应用一个属性,这样它将只处理
请求-在这里您可以做的不多POST
- 对于第二点,您可以在动作方法中执行类似的操作
只是想一想,当用户进入
Login
或Register
页面时注销用户。
希望您没有在私人页面上提供任何链接,用户可以进入登录
或注册
页面或检查用户是否经过身份验证将其重定向到
主页
页面,坦率地说,您不能阻止用户编写URL
并按下输入
按钮,也不能只通知如果您进入任何页面
,您都将注销 只是一个想法,当用户进入Login
或Register
页面时,注销用户。
希望您没有在私人页面上提供任何链接,用户可以进入登录
或注册
页面或检查用户是否经过身份验证将其重定向到
主页
页面,坦率地说,您不能阻止用户编写URL
并按下输入
按钮,也不能只通知如果您进入任何页面
,您都将注销 使用AccountCreated的场景是什么?这是一个操作还是控制器上的一个方法?这是一个操作。这是在成功注册后显示的页面,通知用户他们将发送的电子邮件以验证新帐户。使用AccountCreated的场景是什么,这是控制器上的一个操作还是一个方法?这是一个操作。它是在成功注册后显示的页面,通知用户他们正在发送电子邮件以验证新帐户。