Hello! :-)
Is it possible to use the Extranet/Intranet module for giving access to restricted pages when the user originates from a specific ip and if not then prompt the user for username and password??
Best regards, Anders
Hello! :-)
Is it possible to use the Extranet/Intranet module for giving access to restricted pages when the user originates from a specific ip and if not then prompt the user for username and password??
Best regards, Anders
You could try something like this
[Dynamicweb.Extensibility.Subscribe(Dynamicweb.Notifications.Standard.Page.Loaded)]
public class SignInByIpAddress : Dynamicweb.Extensibility.NotificationSubscriber
{
public override void OnNotify(string notification, Dynamicweb.Extensibility.NotificationArgs args)
{
if (Dynamicweb.ExecutingContext.IsFrontEnd())
{
var pageView = (args as Dynamicweb.Notifications.Standard.Page.LoadedArgs).pageview;
if (pageView != null && !pageView.User.LoggedIn)
{
var ip = GetIPAddress();
if (!string.IsNullOrWhiteSpace(ip))
{
var user = Dynamicweb.Modules.UserManagement.User.GetUserByUserName(ip);
if (user != null)
{
var security = new Dynamicweb.Security();
security.ExtranetLogin(user.UserName, user.Password);
}
}
}
}
}
// @see http://stackoverflow.com/a/740431
protected string GetIPAddress()
{
System.Web.HttpContext context = System.Web.HttpContext.Current;
string ipAddress = context.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (!string.IsNullOrEmpty(ipAddress))
{
string[] addresses = ipAddress.Split(',');
if (addresses.Length != 0)
{
return addresses[0];
}
}
return context.Request.ServerVariables["REMOTE_ADDR"];
}
}
Best regards,
Mikkel
Hi Mikkel,
Great! Thank you for the response even though I only expected whether this was supported without any custom code, but this piece of code is even better :-)
Thanks again, Anders
Hello,
The article at Stackoverflow mentioned above contains a comment from KMX (nov. 15 2012). This guy digged even further and found out that there are actually three possibilities:
HTTP_X_CLUSTER_CLIENT_IP, HTTP_X_FORWARDED_FOR and REMOTE_ADDR
Please read the article.
You must be logged in to post in the forum