我正在研究asp.net实体框架。我只想通过登录访问页面,而不是直接输入页面的URL。如果用户输入页面的URL并尝试访问它,则应将其重定向到登录页面。 我怎样才能做到这一点?用户应该使用DB的用户名和密码登录。 我是ASP.NET的新手
答案 0 :(得分:6)
您正在寻找的功能可以通过将以下身份验证/授权部分添加到ASP.NET Web.config
文件来实现,如以下示例所示:
<system.web>
<authentication mode="Forms">
<forms name="SomeName"
loginUrl="Login.aspx"
protection="All"
path="/">
</forms>
</authentication>
<authorization>
<deny users="?" />
</authorization>
</system.web>
它基本上拒绝未经身份验证的用户的所有访问权限:如果此类未经身份验证的用户尝试访问您网站上的任何页面,则他/她将被重定向到Login.aspx
页面(MSDN上的详细信息https://msdn.microsoft.com/en-us/library/wce3kxhd.aspx, https://msdn.microsoft.com/en-us/library/xdt4thhy.aspx)。
希望这会有所帮助。
答案 1 :(得分:1)
如果您使用asp.net Identity来记录用户(我相信这是新MVC项目的默认设置),那么您可以使用数据注释在控制器上设置此功能。它应该看起来像
//GET
[Authorize]
public ActionResult Index(){
return View();
}
这可能会自动执行您想要的操作。如果您最终需要明确定义Authorize属性将重定向用户的位置,那么答案很好here.
答案 2 :(得分:-1)
使用Session变量。 用户登录后,立即创建会话变量并在其中存储一些值。在每个页面加载事件中,对会话变量是否存在设置if条件。在else条件下,将用户重定向到登录页面。每次注销时,释放会话变量。
答案 3 :(得分:-1)
您可以在代码后面尝试此操作
if (User.Identity.IsAuthenticated == true)
{
Response.Redirect("The Page you want");
}
else
Response.Redirect("Login.aspx"); // redirect it to your login page