当我启动一个Windows窗体应用程序时,它会自动从窗口启动时输入的凭据中获取用户名和密码,并自动登录用户。
答案 0 :(得分:0)
答案 1 :(得分:0)
您可以随时查看您是否拥有有效的WindowsIdentity
:
using System.Security.Principal;
WindowsIdentity currUser = WindowsIdentity.GetCurrent();
if (currUser != null)
{
string userName = currUser.Name;
}
但正如其他人也说的那样:你将无法检索密码 - 永远不会。
如果要登录SQL Server,可以在连接字符串中定义Integrated Security=SSPI;
,并使用当前的Windows身份登录SQL Server。没有密码需要。
答案 2 :(得分:0)
永远不可能提取密码,因为它是一种安全威胁。
根据您编写WinForms应用程序的语言,可能有多种方法可以获取当前登录用户的用户名。
在C#中,你可以这样得到它:
string username = Environment.UserName;
string domain = Environment.UserDomainName;
string fullyQualifiedUsername = domain + "\\" + username;
有了用户名,您就可以假设用户已登录到计算机时已经过身份验证。
因此,您可以通过创建“登录”上面获得的用户的自定义页面来绕过ASP.NET Forms身份验证:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Security;
using System.Activities.Statements;
public partial class sso : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string username = Request["username"];
FormsAuthentication.RedirectFromLoginPage(username, false);
}
}
然后您可以调用该页面:http://localhost/sso/sso.aspx?username=Varun+Chatterji
免责声明:这是示例代码,不适用于生产。如果您仅使用查询字符串以这种方式实现“登录”,则必须通过sso.aspx中的某种形式的身份验证来保护登录