webdav portal auth via ad
This commit is contained in:
parent
05d9fddb5d
commit
7dd090820b
56 changed files with 927 additions and 281 deletions
|
@ -3,6 +3,10 @@ using System.Web;
|
|||
using System.Web.Mvc;
|
||||
using System.Web.Optimization;
|
||||
using System.Web.Routing;
|
||||
using System.Web.Script.Serialization;
|
||||
using System.Web.Security;
|
||||
using WebsitePanel.WebDav.Core.Config;
|
||||
using WebsitePanel.WebDav.Core.Security.Authentication.Principals;
|
||||
using WebsitePanel.WebDavPortal.Controllers;
|
||||
using WebsitePanel.WebDavPortal.DependencyInjection;
|
||||
|
||||
|
@ -48,5 +52,47 @@ namespace WebsitePanel.WebDavPortal
|
|||
controller.Execute(requestContext);
|
||||
Response.End();
|
||||
}
|
||||
|
||||
protected void Application_PostAuthenticateRequest(Object sender, EventArgs e)
|
||||
{
|
||||
HttpCookie authCookie = Request.Cookies[FormsAuthentication.FormsCookieName];
|
||||
var contextWrapper = new HttpContextWrapper(Context);
|
||||
|
||||
if (authCookie != null)
|
||||
{
|
||||
FormsAuthenticationTicket authTicket = FormsAuthentication.Decrypt(authCookie.Value);
|
||||
|
||||
var serializer = new JavaScriptSerializer();
|
||||
|
||||
var principalSerialized = serializer.Deserialize<WspPrincipal>(authTicket.UserData);
|
||||
|
||||
var principal = new WspPrincipal(principalSerialized.Login);
|
||||
|
||||
principal.AccountId = principalSerialized.AccountId;
|
||||
principal.ItemId = principalSerialized.ItemId;
|
||||
principal.OrganizationId = principalSerialized.OrganizationId;
|
||||
principal.DisplayName = principalSerialized.DisplayName;
|
||||
principal.EncryptedPassword = principalSerialized.EncryptedPassword;
|
||||
|
||||
HttpContext.Current.User = principal;
|
||||
|
||||
if (!contextWrapper.Request.IsAjaxRequest())
|
||||
{
|
||||
SetAuthenticationExpirationTicket();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void SetAuthenticationExpirationTicket()
|
||||
{
|
||||
var expirationDateTimeInUtc = DateTime.UtcNow.AddMinutes(FormsAuthentication.Timeout.TotalMinutes).AddSeconds(1);
|
||||
var authenticationExpirationTicketCookie = new HttpCookie(WebDavAppConfigManager.Instance.AuthTimeoutCookieName);
|
||||
|
||||
authenticationExpirationTicketCookie.Value = expirationDateTimeInUtc.Subtract(new DateTime(1970, 1, 1)).TotalMilliseconds.ToString("F0");
|
||||
authenticationExpirationTicketCookie.HttpOnly = false;
|
||||
authenticationExpirationTicketCookie.Secure = FormsAuthentication.RequireSSL;
|
||||
|
||||
HttpContext.Current.Response.Cookies.Add(authenticationExpirationTicketCookie);
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue