远程登录DotNetNuke站点
本文关键字:DotNetNuke 站点 登录 程登录 | 更新日期: 2023-09-27 18:16:29
我正在为DotNetNuke 7创建一个简单的web服务,这将允许iOS或Android应用程序通过我们的网站验证用户,以确保他们是会员,因此允许在应用程序上查看受限制的内容。
我有一个测试web服务运行响应匿名连接。我实际上如何得到它登录到网站和检索数据回来(如角色和联系信息)?
public class SiteLoginController : DnnApiController
{
[DnnAuthorize]
[HttpGet]
public HttpResponseMessage LoginToSite(string username, string password)
{
// go log into website
// if they have an account
// retrieve role and contact info
// else
// return invalid credentials message
}
}
我已经在网上看了一段时间了,现在大多数答案似乎与允许匿名访问而不是实际验证用户有关。
您不需要登录来获取用户信息。虽然我不确定日志部分工作从一个web服务
UserInfo user = UserController.GetUserByName(username);
if (user != null)
{
string email = user.Email;
}
else
{
//user not found
}
或者如果你想登录以增加安全性,你可以这样做:
string resultText = string.Empty;
UserLoginStatus loginStatus = new UserLoginStatus();
UserController.UserLogin(PortalId, username, password, null, PortalSettings.PortalName, DotNetNuke.Services.Authentication.AuthenticationLoginBase.GetIPAddress(), ref loginStatus, false);
switch (loginStatus)
{
case UserLoginStatus.LOGIN_SUCCESS:
resultText = "OK";
break;
case UserLoginStatus.LOGIN_FAILURE:
resultText = "Failure";
break;
case UserLoginStatus.LOGIN_USERLOCKEDOUT:
resultText = "Locked out";
break;
case UserLoginStatus.LOGIN_USERNOTAPPROVED:
resultText = "Not approved";
break;
default:
resultText = "Unknown error";
break;
}
老实说,更简单的解决方案是直接传递用户名&密码作为基本身份验证,使用[DnnAuthorize]属性可以验证用户是您想要的用户,然后您可以使用UserController.GetCurrentUser()来获取登录用户。