我是一个为我的应用程序创建asp.net Web应用程序的新蜜蜂。我将拥有不同的用户,并且我没有使用任何特殊的表单或方法来进行登录。我有访问数据库,在那里我有一些用户角色,公司,用户名和密码。 在我的登录页面文本框中,我将获得最终用户输入的公司用户名和密码。然后我将检查公司和用户名(这是表中的主键。)如果密码匹配,那么将找到用户角色并重定向到每个用户的页面。 现在工作正常。 我有一个退出按钮,它位于站点主页和
中 <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;
在登录和登出方面工作正常。但事实上,注销按钮只是重定向到网站上的第一页,如果我们在浏览器中执行后退箭头,我可以返回到我所在的prevs页面。有什么方法我可以整洁地做到这一点,即使我退回浏览器后它会要求登录。
任何帮助都将非常感激。我犯了一个错误并创建了完整的应用程序现在我担心这个功能所以从技术上来说我没有退出:(
答案 0 :(得分:1)
每当用户在系统中打开页面时,请使用以下代码检查会话是否有效
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");
}
答案 1 :(得分:0)
正如@Chathuranga Ranasinghe所提到的,我使用session varibale存储用户名详细信息,我将检查会话变量是否为空,然后转到我的默认页面,否则继续。
if (((string)Session["iden"]) )
{
Response.Redirect("/Default.aspx");
}
我在登录后在页面上使用了这个,现在它对我来说很好。
答案 2 :(得分:0)
好吧,你的问题是如何做到
正确登录
正确的方法不是重新发明轮子,而是使用ASP.NET中内置的框架
https://msdn.microsoft.com/en-us/library/ms731049%28v=vs.110%29.aspx
它将为您提供许多额外功能,例如使用OpenAuth等。
实施例 &#34; https://msdn.microsoft.com/en-us/library/aa354509%28v=vs.110%29.aspx