我是一个新蜜蜂,为我的应用程序创建一个asp.net网络应用程序。我会有不同的用户,我没有使用任何特殊的形式或方法进行登录。我可以访问db,在其中我有一些用户角色、公司、用户名和密码。在我的登录页面通过文本框,我将得到公司的用户名和密码输入的最终用户。然后我将检查公司和用户名(这是表中的主键)。如果密码匹配,那么将找到用户角色并为每个用户重定向到页面。现在效果很好。我有一个注销按钮,它位于sitemaster页面上
<div id="logout" runat="server" visible="false" class="navbar-brand1">
<a id="lo" runat="server" href="/Default">Log Out </a>
</div> 然后,在我要显示注销的页面中,我将调用代码。
Master.FindControl("logout").Visible = true;它在登录和登出方面运作良好。但是实际上,注销按钮只是重定向到站点上的第一页,如果我们在浏览器中执行后箭头操作,我可以返回到我所在的was页面。是否有任何方法可以做到整洁,以便在注销后,即使我回到浏览器,它将要求登录。
任何帮助都是非常感谢的。我犯了一个错误,创建了完整的应用程序,现在我担心这个特性,所以从技术上讲,我不会注销:
发布于 2016-04-22 20:24:42
每当用户打开系统中的页面时,请使用下面的代码检查会话是否有效。
if (!IsPostBack)
{
if (Convert.ToString(Session["UserName"]).Length <= 0)
{
Response.Redirect("Login.aspx");
}
}当用户单击SignOut按钮时,重定向到SignOut.aspx页面。在SignOut.aspx的表单加载事件中使用下面的代码来清除会话。
protected void Page_Load(object sender, EventArgs e)
{
Session.Abandon();
Session.Contents.RemoveAll();
System.Web.Security.FormsAuthentication.SignOut();
Response.Redirect("Login.aspx");
}发布于 2016-04-22 18:08:24
正如@Chathuranga Ranasinghe所提到的,我使用session varibale存储用户名详细信息,我将检查会话变量是否为空,然后转到我的默认页面,否则继续。
if (((string)Session["iden"]) )
{
Response.Redirect("/Default.aspx");
}我在登录后的页面上使用了这个,现在它对我来说很好。
发布于 2016-04-22 18:19:57
嗯,你的问题是怎么做
正确登录
正确的方法不是重新发明轮子,而是使用ASP.NET中内置的框架。
https://msdn.microsoft.com/en-us/library/ms731049%28v=vs.110%29.aspx
它会给你很多额外的功能,比如使用OpenAuth等等。
例子"https://msdn.microsoft.com/en-us/library/aa354509%28v=vs.110%29.aspx“
https://stackoverflow.com/questions/36795846
复制相似问题