2011-03-16 117 views
0

是有可能的是,當我啓動一個視窗形式應用,它會自動拾取從在窗口處的起始輸入的憑證的用戶名和密碼,並自動登錄用戶。使用Windows窗體應用程序自動登錄用戶?

+1

登錄到什麼某種形式的認證安全登錄?針對哪種用戶需要驗證憑據? – rene 2011-03-16 06:53:50

+0

該應用程序必須在Intranet中使用。它將使用憑證登錄,然後我將使用該應用與網站進行交互。 – Prachur 2011-03-16 06:58:58

回答

0

拿起密碼是永遠不可能的,因爲它是一個安全威脅。 。

根據您的WinForms應用程序編寫語言,可能有幾種方法來獲得當前登錄用戶的用戶名

在C#中,你可以這樣說:

string username = Environment.UserName; 
string domain = Environment.UserDomainName; 
string fullyQualifiedUsername = domain + "\\" + username; 

有一次,你有用戶名,你可以假設用戶在登錄到機器時已經被認證。

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

因此,你就可以繞過ASP.NET通過創建「日誌中的」用戶上面得到一個自定義頁面表單認證免責聲明:這是示例代碼,不適用於生產。如果實現單獨使用查詢字符串以這種方式「登錄」,則必須在sso.aspx

0

您可以隨時檢查,看看是否有一個有效的WindowsIdentity

using System.Security.Principal; 

WindowsIdentity currUser = WindowsIdentity.GetCurrent(); 
if (currUser != null) 
{ 
    string userName = currUser.Name; 
} 

但人也說:你贏了無法檢索密碼 - 永遠不會。

連接字符串和當前的Windows身份

如果你想登錄到SQL Server,你可以定義Integrated Security=SSPI;將用於登錄到SQL Server。沒有密碼需要這個。

相關問題