Я хочу научиться создавать и использовать методы в C #.
Я знаю, как получить имя пользователя текущего пользователя Windows, вошедшего в систему.И я знаю, как запросить Active Directory, чтобы получить их полное имя.Но я хотел бы создать метод многократного использования, который я могу использовать в других веб-приложениях по мере необходимости.
Кто-нибудь покажет мне, как это должно быть или может быть структурировано?
У меня есть толькосделал это таким образом, в VB.Net, и у меня может быть где-то версия этого на C #:
Protected Sub PopulateReviewerDDL()
'Currently logged in user:
iUserName = Right(Request.ServerVariables("AUTH_USER"), (Request.ServerVariables("AUTH_USER").Length - 6)) 'Remove Domain name and backslash.
Dim DBConn As New SqlConnection(ConfigurationManager.ConnectionStrings("ConnectionString").ConnectionString)
Dim DBCmd As New SqlCommand("SELECTADISNames", DBConn)
DBCmd.CommandType = Data.CommandType.StoredProcedure
Try
DBConn.Open()
DBCmd.Parameters.Add("@LogonName", SqlDbType.VarChar).Value = iUserName
Dim dr As SqlDataReader = DBCmd.ExecuteReader
dr.Read()
varLastName = dr("LastName").ToString
varFirstName = dr("FirstName").ToString
dr.Close()
ReviewerName = varFirstName & " " & varLastName
lblUserName.Text = ReviewerName
If Not ddlReviewerName.Items.FindByText(ReviewerName) Is Nothing Then
ddlReviewerName.Text = ReviewerName
Else
Response.Redirect("NoAccess.htm", False)
End If
Catch exp As Exception
Response.Write(exp.Message)
End Try
'Close Database connection
DBCmd.Dispose()
DBConn.Close()
DBConn = Nothing
End Sub
открытый частичный класс _Default: System.Web.UI.Page {
protected string ClearDomain(string sItem)
{
int sLoc = (sItem.IndexOf("\\") + 1);
string sOutPut;
sOutPut = sItem.Substring(sLoc);
return sOutPut;
}
protected void Page_Load(object sender, EventArgs e)
{
string usr;
usr = ClearDomain(User.Identity.Name.ToString());
string dpt;
dpt = "";
SqlConnection DBConn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
SqlCommand DBCmd = new SqlCommand("SELECTADISNames", DBConn);
DBCmd.CommandType = System.Data.CommandType.StoredProcedure;
try
{
DBConn.Open();
DBCmd.Parameters.Add("@LogonName", SqlDbType.VarChar).Value = usr;
SqlDataReader dr = DBCmd.ExecuteReader();
dr.Read();
// ContactPerson.Text = dr["FirstName"].ToString() + " " + dr["LastName"].ToString();
// Notes.Text = dr["Email"].ToString(); // usr.ToString() + "@careersourcebroward.com"; // "Note: Your department is " + dr["Department"].ToString();
email01.SelectedValue = dr["Email"].ToString(); // usr.ToString() + "@careersourcebroward.com";
//if (!IsPostBack)
//{
// Department.Text = dr["Department"].ToString();
//}
dpt = dr["Department"].ToString();
dr.Close();
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
DBCmd.Dispose();
DBConn.Close();
DBConn = null;
// ############################################################################################ START ACCESS #####################################
// Add and edit access list. deptAccess is department access only. allAccess is all access. Add: IValentin | Use same case as in Active Directory
string[] deptAccess = {
"mbateman",
"rmoffett",
"CCondon",
"rpickett",
"JLloyd",
"rdaniels",
"LKing",
"SBreslin",
"BCevieux",
"bcharles",
"TWeaver",
"SGonzalez",
"VSaget",
"pchernofsky",
"KRedford",
"VSpellsAnderson",
"jconnelly"
};
string[] allAccess = {
"MCJ",
"chylton",
"ykobrin",
"CAzor",
"mklincewicz",
"mmagill",
"tash",
"dmegnin",
"dhmegnin",
"GValme",
"gvalme",
"mwatson",
"lelmore",
"IValentin",
"TThomas",
"AWiner",
"PScott",
"KKangal",
"CCarcillo",
"KHartzog",
"CJohnson"
};
int pos01 = Array.IndexOf(deptAccess, usr);
int pos02 = Array.IndexOf(allAccess, usr);
if (pos01 > -1 && dpt == Department.SelectedItem.ToString() || pos02 > -1) // (AND Department = usr's department) (OR usr in master list for all access) (use position numbers in the array and ElseIf like the color codes for accesses?)
{
//this.GridView1.AutoGenerateDeleteButton = true;
this.GridView1.Columns[0].Visible = true;
Submit.Visible = true;
Label1.Visible = false;
}
else
{
//this.GridView1.AutoGenerateDeleteButton = false; //This adds a new "generated" column and throws off the column index counts.
this.GridView1.Columns[0].Visible = false;
Submit.Visible = false;
Label1.Visible = true;
}
// ############################################################################################ END ACCESS #####################################
/*
*
* The type or namespace name 'Linq' does not exist in the namespace 'System.Data' (are you miss...
* May 26, 2008 01:30 PM
* Hi,
* I hope that you fixed the problem, just in case you did not add this line into web config where other assembly's are
* <add assembly="System.Data.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
* */
Label1.Text = "Note: " + usr.ToString() + ", " + pos01.ToString() + ", " + pos02.ToString() + ", " + dpt;
}
protected void Submit_Click(object sender, EventArgs e)
{
// Call InsertNewRecord
InsertNewRecord();
GridView1.DataBind();
Active.Visible = true;
}