Tag: forms authentication

如何确定使用哪种身份validation方法?

我想知道:我如何确定使用哪种身份validation方法? 例如,如果我的身份validation基于FORMS身份validation而不是WINDOWS身份validation,我想执行代码。

检查身份validation票证到期而不影响它

我正在尝试实现一个Web应用程序项目,我的网页可以使用AJAX检查服务器的身份validation票证到期日期/时间。 我正在使用带有slidingExpiration的Forms身份validation。 我遇到的问题是我无法弄清楚如何在不重置的情况下检查值。 我创建了一个简单的页面 – CheckExpiration.aspx – 下面是代码背后的代码: private class AjaxResponse { public bool success; public string message; public string expirationDateTime; public string secondsRemaining; public string issueDate; } protected void Page_Load(object sender, EventArgs e) { AjaxResponse ar = new AjaxResponse(); JavaScriptSerializer js = new JavaScriptSerializer(); if (HttpContext.Current.User.Identity.IsAuthenticated) { FormsIdentity id = (FormsIdentity)HttpContext.Current.User.Identity; string expiration = […]

如何配置ASP.net表单身份validation以仅拒绝特定URL

我有一个网站,我有一个admin.aspx页面。 一旦用户成功登录Admin.aspx页面,它们就会被重定向到Report.aspx页面。 请注意,如果没有首先成功登录Admin.aspx页面,则无法访问Report.aspx页面。 请记住,还有其他页面,如index.aspx等,任何用户都可以在不登录的情况下查看。我只需要对JUST Report.aspx页面进行身份validation。 我有以下代码,但似乎没有工作,因为它说虚拟目录的问题。 我做了一些根本错误的事吗?

使用Razor的FormsAuthentication无效

我试图让FormsAuthentication与我的Razor应用程序(MVC 3)一起使用。 我有一个LoginController调用我的LoginPage(在Views / Shared中); 我的web.config将LoginUrl设置为“/ Login /”。 当应用程序尝试调出主页面时,[Authorize]行会正确显示LoginPage,但问题就出现了。 这是我的LoginController.cs: using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; namespace ABMCEditAndReports.Controllers { public class LoginController : Controller { // // GET: /Login/ public ActionResult Index() { return View(“LoginPage”); } } } 这是我的LoginPage.cshtml: @{ ViewBag.Title = “Login Page”; ViewBag.Header = “Login Page”; } $.ajaxSetup({ cache: […]

10秒后MVC3会话超时

需要一些ASP.Net Web应用程序中的会话超时问题的帮助。 基本上会话在登录后大约10-15秒到期。 附注:我使用FormsAuthentication和基本安全性的自定义组合 我的Session.IsNewSession在登录后3-4次良好的回发后设置为true。 我的Web.Config有以下…… 我相信超时指的是分钟…. 我有一个注册了ActionFilter的MVC 3应用程序 public static void RegisterGlobalFilters(GlobalFilterCollection filters) { filters.Add(new MyActionFilterAttribute()); } 在OnActionExecuting内部,我检查当前会话以防止访问未授权用户无法访问的控制器操作。 public override void OnActionExecuting(ActionExecutingContext filterContext) { HttpContext ctx = HttpContext.Current; Player player = SessionHelper.GetCurrentPlayer(filterContext.HttpContext.Session); if (player == null && ctx != null) { player = SessionHelper.GetCurrentPlayer(ctx.Session); } if (player == null || (player.IsAdministrator == false && […]

表单身份validation不适用于特定页面

我似乎无法隔离我的论坛,为它们设置不同于网站其他部分的权限。 这是我的网站的设置。 我需要隔离我的论坛。 目前,出于测试目的,我进行了设置,以便拒绝所有用户访问。 我发现的是我仍然可以访问论坛页面。 这告诉我,这没有正确设置。 路径属性是否必须是相对的? 是否必须指向访问该页面的URL或重写的路径? ~/public/public-forum.aspx是一个被重写的虚拟路径,因此直接或文件都不存在这些名称。 为什么这个目前不起作用? 我希望这个解决方案足够详细。

表单身份validation添加其他信息以及ReturnUrl

使用表单身份validation,当应用程序需要重定向到登录页面时,是否有一个事件或任何可扩展点,可以让我在重定向到登录页面之前对请求执行其他工作? 我想在查询字符串中发送可能不同的其他信息,以便在web.config中的loginUrl节点的链接中静态嵌入它。 编辑:为了澄清,我想在重定向到登录页面之前拦截请求。 例: 在用户被重定向到http://the/interwebs/login.aspx之前,我希望能够打包查询值,这样url可能会结束像http://the/interwebs/login.aspx?Action =刷新

MVC 4表单身份validation无法与一起使用

我现在正在学习MVC4,我正在按照Pro ASP NET MVC4第4版的书来创建一个体育商店项目。 我一直在webforms中开发,我试图弄清楚表单身份validation在MVC4中是如何工作的。 这是我取得的成就: Web.Config中 AccountController登录动作: [HttpPost] public ActionResult Login(LoginViewModel model, string returnUrl) { if (ModelState.IsValid) { if (authProvider.Authenticate(model.UserName, model.Password)) { return Redirect(returnUrl ?? Url.Action(“Index”, “Admin”)); } else { ModelState.AddModelError(“”, “Incorrect username or password”); return View(); } } else { return View(); } } 认证提供者: public bool Authenticate(string username, string password) { bool […]

ASP.NET MVC 3 – 处理会话变量

我有一个使用Form的身份validation的应用程序,当用户登录时,我检索用户的实际名称并将其分配给会话变量,如下所示: [HttpPost] public ActionResult LogOn(LogOnModel model, string returnUrl) { if (ModelState.IsValid) { if (Membership.ValidateUser(model.UserName, model.Password)) { Session[“Name”] = client.GetName(model.UserName); FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe); return RedirectToAction(“Index”, “Home”); } } } 然后将其显示在我的索引视图中,如下所示: Welcome, @Session[“Name”] 所以,如果我的名字是鲍勃,它会在我的视图中输出“欢迎,鲍勃”,这很好。 但是,一旦我离开页面或关闭我的浏览器并在几分钟后返回,似乎这些Session变量已被销毁,因为它只输出“欢迎”,但我仍然登录,所以我的会话没有被销毁? 我在web.config中将会话设置为在60分钟后被销毁: 编辑 这只有在我登录时检查“记住我”框时才会发生,因为我猜这会保留一个cookie客户端,所以当我重新打开浏览器时,我仍然登录但是创建一个新的会话ID,因为我做了一个Response.Write(Session.SessionID)在我关闭浏览器之前,在我的索引页面上Response.Write(Session.SessionID)并且ID与我重新打开它时的ID不同。 如果我没有选中“记住我”框,那么我将在重新打开浏览器后再次登录

设置STS但在webapp中保留formsauthentication

我正在现有的webapp上启用Windows身份基础。 我希望尽可能少地使用现有代码,因此我想使用在应用程序中使用的formsauthentication的登录页面,如果用户通过特定页面输入应用程序,我只需连接STS,例如“im_comming_from_some_other_site.aspx” 。 在“im_comming_from_some_other_site.aspx”中代码如下: Page_Load(…) { if(verifyAgainstSTS() { FormsAuthentication.SetAuthCookie(<some_STS_Userid), …) Response.Redirect("default.aspx") } else { Response.Redirect("http://<STS_server_name/”) } } 是否有人知道这是否可以做到以及如何做? 任何链接到示例代码(如果可用)深受赞赏。 (当validation超时时,当确定要做什么时,需要一些代码;要么转到本地登录页面,要么转到STS登录页面) 我知道这可能看起来像一个糟糕的设计,而不是一直用STS,但我需要尽快实现这一点,我希望保持原始网站尽可能不受影响。