我有一个网站,我从那里向办公室的成员发送邮件
此邮件有一个是否按钮。
单击是/否按钮我调用网络服务,我的是否链接看起来有点像这样
<a href="http://xxxxx/xxxxx/votCatWSer.asmx/takevotingOpt?yesNo=yes&sNo=1">yes</a>
现在用户,即我的办公室工作人员将登录他们的系统打开他们的 Outlook 找到此邮件,然后单击它。
他们点击后,我的网络服务中的 takevotingOpt 方法将被调用。在这种方法中,我想知道这个呼叫来自哪个用户。这样我就可以在数据库中维护记录,例如 xyz 用户投票是/否
比如说他们是我组织 A 和 B 的两个成员
A 的 windows loginId 是“ AaLoginId ”并且
B 的 windows loginId 是“ BbLoginId ”
A 和 B 都收到带有上述链接的邮件。当 A 单击是/否链接时,我的 Web 方法应该给我 A 的登录 ID,即“ AaLoginId ”。在我得到这个之后,我在我的数据库中输入了一个条目,因为 A 投了赞成票。
我已经在我的网络服务中尝试了以下事情来获取用户名,但没有用,请帮忙。
试过这个东西来获取Windows登录用户名。
//string userName = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
//Uri uri = new Uri("http://tempuri.org/");
//ICredentials credentials = CredentialCache.DefaultCredentials;
//NetworkCredential credential = credentials.GetCredential(uri, "Ntlm");
////userName = credential.UserName;
//userName = User.Identity.Name;
//userName= System.Threading.Thread.CurrentPrincipal.Identity.Name;
//userName = Context.Request.ServerVariables["LOGON_USER"].ToString();
//userName = HttpContext.Current.User.Identity.Name.ToString();
我在我的 inetmgr 中进行了身份验证,并为我的托管 Web 服务启用了 Windows 身份验证,现在它可以执行我想要的操作(userName = User.Identity.Name;),但它会打开一个浏览器窗口并询问我不想要的 Windows 用户 ID 和密码它应该在没有登录窗口的情况下拿起。
请帮助或建议任何其他方法来实现这一目标。