You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
473 lines
14 KiB
473 lines
14 KiB
<%@ Language=VBScript %>
|
|
<% Option Explicit %>
|
|
<%
|
|
dim szEmail, szServerEmail, szServerDomain, szOrigURL, szReason
|
|
dim fBadEmail, fBadCheck, fAgreeCheck, fBadReason, fLimited
|
|
|
|
dim objConn, objCmd, dwResult
|
|
|
|
Response.Buffer=false
|
|
Response.CacheControl="no-cache"
|
|
Response.AddHeader "Pragma", "no-cache"
|
|
Response.Expires=-1
|
|
|
|
|
|
%>
|
|
|
|
<!-- #include file="util.asp"-->
|
|
<!-- #include file="AccessUtil.asp"-->
|
|
<!-- #include file="MailUtil.asp"-->
|
|
|
|
<%
|
|
|
|
Sub AddAuthenticationLevel(szEmail, szDomain, wAccessLevel)
|
|
dim objConn, objRec, szSQL, dwUserID, dwUserAccessLevelID
|
|
dim objCmd, res, dwResult
|
|
|
|
dwUserID = 0
|
|
'Response.Write("Connection: " + szConnectionAuthorization + "<BR>")
|
|
set objConn = Server.CreateObject("ADODB.CONNECTION")
|
|
'objConn.Open szConnectionAuthorization, OCA_RW_UID, OCA_RW_PWD
|
|
objConn.Open szConnectionAuthorization
|
|
set objCmd = Server.CreateObject("ADODB.COMMAND")
|
|
objCmd.ActiveConnection = objConn
|
|
objCmd.CommandType = &H0004
|
|
objCmd.CommandText = "OcaAddUserAndLevel"
|
|
objCmd.Parameters.Append objCmd.CreateParameter ("RETURN_VALUE", 3, &H0004)
|
|
objCmd.Parameters.Append objCmd.CreateParameter ("@User",200,&H0001,50,szEmail)
|
|
objCmd.Parameters.Append objCmd.CreateParameter ("@Domain",200,&H0001,50,szDomain)
|
|
objCmd.Parameters.Append objCmd.CreateParameter ("@CurrTime",200,&H0001,50,CStr(Now()))
|
|
objCmd.Parameters.Append objCmd.CreateParameter ("@Level",3,&H0001,,wAccessLevel)
|
|
'Response.Write("User: " & szEmail & " domain: " & szDomain & " access: " & wAccessLevel )
|
|
objCmd.Execute
|
|
|
|
dwResult = CLng(objCmd.Parameters("RETURN_VALUE"))
|
|
|
|
set objCmd = nothing
|
|
objConn.Close
|
|
|
|
set objConn = nothing
|
|
|
|
if dwResult = 0 then
|
|
Response.Write "<html><body>Error #1 validating user information.: " & dwResult
|
|
Response.End
|
|
|
|
end if
|
|
|
|
End Sub
|
|
|
|
Function AddUserForApproval(ApprovalTypeID, szEmail, szDomain, szReason)
|
|
dim objConn, objRec, szSQL, dwUserID, dwUserAccessLevelID
|
|
dim objCmd, res, dwResult
|
|
|
|
set objConn = Server.CreateObject("ADODB.CONNECTION")
|
|
'objConn.Open szConnectionAuthorization, OCA_RW_UID, OCA_RW_PWD
|
|
objConn.Open szConnectionAuthorization
|
|
|
|
set objCmd = Server.CreateObject("ADODB.COMMAND")
|
|
objCmd.ActiveConnection = objConn
|
|
objCmd.CommandType = &H0004
|
|
objCmd.CommandText = "OcaAddUserForApproval"
|
|
objCmd.Parameters.Append objCmd.CreateParameter ("RETURN_VALUE", 3, &H0004)
|
|
objCmd.Parameters.Append objCmd.CreateParameter ("@ApprovalType",3,&H0001,,ApprovalTypeID)
|
|
objCmd.Parameters.Append objCmd.CreateParameter ("@User",200,&H0001,50,szEmail)
|
|
objCmd.Parameters.Append objCmd.CreateParameter ("@Domain",200,&H0001,50,szDomain)
|
|
objCmd.Parameters.Append objCmd.CreateParameter ("@Reason",200,&H0001,255,szReason)
|
|
|
|
objCmd.Execute
|
|
|
|
dwResult = CLng(objCmd.Parameters("RETURN_VALUE"))
|
|
|
|
set objCmd = nothing
|
|
objConn.Close
|
|
|
|
set objConn = nothing
|
|
|
|
if dwResult = -1 then
|
|
Response.Write "<html><body>Error #2 validating user information."
|
|
Response.End
|
|
end if
|
|
|
|
AddUserForApproval = dwResult
|
|
|
|
End Function
|
|
|
|
Function FLimitedUser(szEmail, szDomain)
|
|
Dim szEmailT, szDomainT
|
|
|
|
FLimitedUser=False
|
|
exit function
|
|
|
|
|
|
szEmailT = CStr(szEmail)
|
|
szDomainT = CStr(szDomain)
|
|
|
|
if Len(szEmailT) = 0 or Len(szDomainT) = 0 then
|
|
FLimitedUser = False
|
|
exit function
|
|
end if
|
|
|
|
if (Len(szEmailT) >=3) then
|
|
if Mid(szEmailT, 2, 1) = "-" then
|
|
FLimitedUser = True
|
|
Exit Function
|
|
end if
|
|
end if
|
|
|
|
if StrComp(szDomainT, "redmond", vbTextCompare) <> 0 And StrComp(szDomainT, "ntdev", vbTextCompare) <> 0 And _
|
|
StrComp(szDomainT, "northamerica", vbTextCompare) <> 0 then
|
|
FLimitedUser = True
|
|
exit function
|
|
end if
|
|
|
|
FLimitedUser = False
|
|
|
|
End Function
|
|
|
|
Sub DoRedirect
|
|
|
|
if (szOrigURL <> "") then
|
|
Response.Redirect szOrigURL
|
|
end if
|
|
|
|
Response.Redirect "../dbgportalv2.asp"
|
|
Response.End
|
|
|
|
End Sub
|
|
|
|
Sub DoNoAccess
|
|
Response.Write "<html><body>"
|
|
Response.Write "Access to this website has been denied. If you have questions concerning this, please E-mail "
|
|
Response.Write "<a href='mailto:dwappr'>dwappr</a>."
|
|
Response.End
|
|
End Sub
|
|
|
|
Function EmailListFromAccessLevelID(AccessLevelID)
|
|
dim objConn, objRec, szSQL, dwUserID, dwUserAccessLevelID
|
|
dim fFirst, szEmail, cCount
|
|
|
|
fFirst = True
|
|
|
|
set objConn = Server.CreateObject("ADODB.CONNECTION")
|
|
set objRec = Server.CreateObject("ADODB.RECORDSET")
|
|
|
|
'objConn.Open szConnectionAuthorization, OCA_RO_UID, OCA_RO_PWD
|
|
objConn.Open szConnectionAuthorization
|
|
objConn.CommandTimeout = 600
|
|
|
|
szSQL = "SELECT UserAlias FROM OcaAuthorizedUsers INNER JOIN OcaUserAccessLevels ON OcaAuthorizedUsers.UserID = OcaUserAccessLevels.UserID WHERE AccessLevelID = " & AccessLevelID
|
|
|
|
set objRec = objConn.Execute (szSQL)
|
|
|
|
szEmail = ""
|
|
|
|
cCount = 0
|
|
|
|
if not objRec.EOF then
|
|
do until objRec.EOF
|
|
cCount = cCount + 1
|
|
if cCount > 10 then
|
|
|
|
Response.Write "Mail overflow error!"
|
|
Response.End
|
|
end if
|
|
|
|
if Not fFirst then
|
|
szEmail = szEmail & ","
|
|
else
|
|
fFirst = False
|
|
end if
|
|
|
|
szEmail = szEmail & objRec("UserAlias") & "@microsoft.com"
|
|
|
|
objRec.MoveNext
|
|
Loop
|
|
end if
|
|
|
|
objRec.Close
|
|
set objRec = nothing
|
|
|
|
objConn.Close
|
|
set objConn = nothing
|
|
|
|
EmailListFromAccessLevelID = szEmail
|
|
|
|
End Function
|
|
|
|
Sub FindReplace(szString, szFind, szReplace)
|
|
dim iPos, cchFind, szResult, cchString
|
|
|
|
cchFind = Len(szFind)
|
|
|
|
Do While (true)
|
|
iPos = Instr(szString, szFind)
|
|
if iPos = 0 then
|
|
|
|
exit sub
|
|
end if
|
|
cchString = Len(szString)
|
|
if iPos = 1 then
|
|
szResult = ""
|
|
else
|
|
szResult = Left(szString, iPos - 1)
|
|
end if
|
|
szResult = szResult & szReplace
|
|
if (iPos + cchFind - 1) <> cchString then
|
|
szResult = szResult & Right(szString, 1+(cchString - (iPos + cchFind)))
|
|
end if
|
|
szString = szResult
|
|
|
|
loop
|
|
End Sub
|
|
|
|
Sub DoApproval
|
|
Response.Write "<html><head><title>Website Access Request</title></head><body>"
|
|
Response.Write "Your request for website access was previously submitted, but has not been approved yet. You will receive an E-mail when it is approved.<p>If it has been more than 24-hours and you have not heard from us, please E-mail "
|
|
Response.Write "<a href='mailto:dwappr'>dwappr</a>."
|
|
Response.End
|
|
|
|
End Sub
|
|
|
|
Sub SendApprovalMail(dwUserID, AccessLevelID, szEmail, szDomain, szReason)
|
|
dim szBody, szTo
|
|
Const ForReading = 1, ForWriting = 2, ForAppending = 3
|
|
Dim fs, f, szFilename
|
|
|
|
szFilename = Server.MapPath("\") & "\ApproverEmail.htm"
|
|
Set fs = CreateObject("Scripting.FileSystemObject")
|
|
Set f = fs.OpenTextFile(szFilename, ForReading,False,0)
|
|
szBody = f.ReadAll
|
|
f.Close
|
|
set f=nothing
|
|
set fs = nothing
|
|
|
|
FindReplace szBody, "%domainalias%", szDomain & "\" & szEmail
|
|
FindReplace szBody, "%approveurl%", "http://watson/UserLevels.asp?UserID=" & dwUserID
|
|
FindReplace szBody, "%requestuser%", szEmail
|
|
FindReplace szBody, "%reason%", szReason
|
|
|
|
szTo = EmailListFromAccessLevelID(AccessLevelID)
|
|
|
|
if Not FSendMail("[email protected]", szTo, "Request for Watson Access", szBody, 15) then
|
|
Response.Write "<html><body>"
|
|
Response.Write "An error has occured while processing your request. Please E-mail "
|
|
Response.Write "<a href='mailto:dwappr'>dwappr</a>."
|
|
Response.End
|
|
|
|
end if
|
|
|
|
Response.Write "<html><head><title>Website Access Request</title></head><body>"
|
|
Response.Write "Your request for website access has been submitted and you will receive an E-mail when it is approved.<p>If you don't hear from us within 24-hours, please E-mail "
|
|
Response.Write "<a href='mailto:dwappr'>dwappr</a>."
|
|
Response.End
|
|
|
|
End Sub
|
|
|
|
Sub ProcessApproval(szEmail, szDomain, szReason)
|
|
|
|
dim dwUserID
|
|
dim szReasonLimited
|
|
|
|
szReasonLimited = szReason
|
|
if Len(szReasonLimited) > 255 then
|
|
szReasonLimited = Left(szReasonLimited, 255)
|
|
end if
|
|
|
|
dwUserID = AddUserForApproval(constApprovalTypeWebsiteAccess, szEmail, szDomain, szReasonLimited)
|
|
|
|
'SendApprovalMail dwUserID, constAccessApproveNonStd, szEmail, szDomain, szReasonLimited
|
|
|
|
End Sub
|
|
|
|
szEmail = ""
|
|
szReason = ""
|
|
fBadReason = False
|
|
fAgreeCheck = False
|
|
szOrigURL = CStr(Request("Orig"))
|
|
|
|
if CStr(Request.QueryString ) <> "" then
|
|
szOrigURL = Request.QueryString
|
|
end if
|
|
|
|
//Response.Write "<BR> qyer: " & Request.QueryString
|
|
//Response.Write "<BR> queyrstring: " & Request.QueryString( "OrigForm" )
|
|
//Response.Write ("<BR><BR>SZOrigurl: " & szOrigURL )
|
|
|
|
EmailDomainFromLogon szServerEmail, szServerDomain
|
|
fLimited = FLimitedUser(szServerEmail, szServerDomain)
|
|
|
|
set objConn = Server.CreateObject("ADODB.CONNECTION")
|
|
'objConn.Open szConnectionAuthorization, OCA_RO_UID, OCA_RO_PWD
|
|
'objConn.Open "Driver=SQL Server;Server=TKOffDWSql02;DATABASE=Authorization;uid=ocasqlrw;pwd=FT126USW"
|
|
objConn.Open szConnectionAuthorization
|
|
|
|
set objCmd = Server.CreateObject("ADODB.COMMAND")
|
|
objCmd.ActiveConnection = objConn
|
|
objCmd.CommandType = &H0004
|
|
objCmd.CommandText = "OcaCheckUserAccessApprovals"
|
|
objCmd.Parameters.Append objCmd.CreateParameter ("RETURN_VALUE", 3, &H0004)
|
|
objCmd.Parameters.Append objCmd.CreateParameter ("@User",200,&H0001,50,szServerEmail)
|
|
objCmd.Parameters.Append objCmd.CreateParameter ("@Domain",200,&H0001,50,szServerDomain)
|
|
objCmd.Parameters.Append objCmd.CreateParameter ("@Level",3,&H0001,,constAccessAuthorized)
|
|
objCmd.Parameters.Append objCmd.CreateParameter ("@ApprovalTypeID",3,&H0001,,constApprovalTypeWebsiteAccess )
|
|
|
|
objCmd.Execute
|
|
|
|
dwResult = CLng(objCmd.Parameters("RETURN_VALUE"))
|
|
|
|
set objCmd = nothing
|
|
objConn.Close
|
|
|
|
set objConn = nothing
|
|
|
|
if dwResult = 1 then
|
|
Session("Authenticated") = "Yes"
|
|
DoRedirect
|
|
end if
|
|
|
|
if dwResult = 2 then
|
|
DoNoAccess
|
|
end if
|
|
|
|
if dwResult = 3 then
|
|
DoApproval
|
|
end if
|
|
|
|
if (Request("Authentication") = "seen") then
|
|
if Request.Form("chkAgree") <> "ON" then
|
|
fBadCheck = True
|
|
else
|
|
fAgreeCheck = True
|
|
end if
|
|
szEmail = CStr(Request.Form("txtEmail"))
|
|
|
|
if StrComp(szServerEmail, szEmail, vbTextCompare) <> 0 or szServerEmail = "" then
|
|
fBadEmail = True
|
|
end if
|
|
|
|
if fLimited then
|
|
szReason = CStr(Request.Form("txtReason"))
|
|
if Len(szReason) = 0 then
|
|
fBadReason = True
|
|
end if
|
|
end if
|
|
|
|
if Not fBadEmail and Not fBadCheck and not fBadReason then
|
|
|
|
if Not fLimited then
|
|
|
|
Session("Authenticated") = "Yes"
|
|
AddAuthenticationLevel szServerEmail, szServerDomain, constAccessAuthorized
|
|
|
|
DoRedirect
|
|
|
|
else
|
|
|
|
AddAuthenticationLevel szServerEmail, szServerDomain, constAccessAuthorized
|
|
|
|
ProcessApproval szServerEmail, szServerDomain, szReason
|
|
|
|
end if
|
|
end if
|
|
|
|
end if
|
|
|
|
%>
|
|
|
|
<HTML><HEAD><TITLE>OCA Debug Portal Website Access</TITLE>
|
|
|
|
<link rel="stylesheet" type="text/css" href="CallTree.css"/>
|
|
<script language="javascript">
|
|
function checkInput()
|
|
{
|
|
if (document.all.item("txtReason").value.length <= 255)
|
|
Authentication_Form.submit();
|
|
else
|
|
{
|
|
alert("The text in your reason is too long. Please limit your reason to 255 characters.");
|
|
}
|
|
}
|
|
function checkReasonLength(inObj)
|
|
{
|
|
if (inObj.value.length <= 255)
|
|
document.all.item("idReasonLength").style.display = "none";
|
|
else
|
|
document.all.item("idReasonLength").style.display = "";
|
|
}
|
|
|
|
</script>
|
|
</HEAD>
|
|
<BODY bgcolor=#eeeeee>
|
|
|
|
<form name="Authentication_Form" href="Authentication.asp" method=post
|
|
<% if fLimited then %>
|
|
onSubmit="checkInput();return(false)"
|
|
|
|
<% end if %>
|
|
>
|
|
<input type=hidden name="Authentication" value="seen">
|
|
<input type=hidden name="Orig" value="<% =Server.HTMLEncode(szOrigURL) %>">
|
|
<h1><font face="Verdana" style="font-size: 16pt">Private Customer Data</font></h1>
|
|
<P align=left><B><FONT color=red face="Arial">Before entering this website, you must read and understand the
|
|
<a href="http://watson.microsoft.com/dw/1033/dcp.asp">data collection policy</a></FONT></B></P>
|
|
<H2><font style="font-size: 14pt; font-style: italic" face="Verdana">Summary</font></H2>
|
|
<P><font face="Tahoma" size="2">The purpose of the Online Crash Analyses error reporting is to collect data and use it to
|
|
improve Microsoft products. You cannot use OCA data for purposes other than
|
|
finding and fixing bugs. </font>
|
|
<ul>
|
|
<LI><font face="Tahoma" size="2">If you discover information that identifies a customer, you may not
|
|
contact that customer. (Except Microsoft employees and users who have
|
|
explicitly agreed to be contacted.) </font>
|
|
<LI><font face="Tahoma" size="2">If you want to work with an outside company to fix a problem you must talk
|
|
to the <A href="mailto:blueteam">OCA</A> team first.</font></LI>
|
|
</ul>
|
|
<P><font face="Tahoma" size="2">Please understand that by accessing this data you are bound to the
|
|
<a href="http://handbook/default.asp?contentpage=/f/guidelines13.asp">NDA</a> that you signed.</font></P>
|
|
|
|
<% if fLimited then %>
|
|
|
|
<H2><font style="font-size: 14pt; font-style: italic" face="Verdana">Request Access</font></H2>
|
|
<p><font face="Tahoma" size="2">Please briefly describe why you need access to data
|
|
on this website. You will be contacted by email when your request is
|
|
approved.</font></P>
|
|
<p style="margin-bottom: 0"><font face="Tahoma" size="2">I need to access Watson because:</font>
|
|
</p>
|
|
<textarea rows="3" name="txtReason" cols="47" onafterupdate="checkReasonLength(this)" onchange="checkReasonLength(this)" onkeyup="checkReasonLength(this)"><% =szReason %></textarea>
|
|
<span id="idReasonLength" style="display:none"><font color=red><-- The text in your reason is too long. Please limit your reason to 255 characters.</font></span>
|
|
<%
|
|
if fBadReason then
|
|
Response.Write "<font color=red><-- You need to specify a reason before submitting this request.</font>"
|
|
end if
|
|
%>
|
|
</p>
|
|
|
|
<% end if %>
|
|
|
|
<P><font face="Tahoma"><font size="3">
|
|
<INPUT type=checkbox name=chkAgree value="ON" <% if fAgreeCheck then %>checked<%end if %>></font><font size="2"> I have read and understand the <A
|
|
href="http://watson.microsoft.com/dw/1033/dcp.asp">data collection
|
|
policy</A>.</font></font>
|
|
<%
|
|
if fBadCheck then
|
|
Response.Write "<font color=red><-- You need to read and understand the data collection policy.</font>"
|
|
end if
|
|
%>
|
|
|
|
</P>
|
|
|
|
<P><font face="Tahoma"><font size="2">Email alias: </font><font size="3">
|
|
<INPUT name=txtEmail size="20" value="<% =szEmail %>"></font></font>
|
|
<%
|
|
if fBadEmail then
|
|
Response.Write "<font color=red><-- Incorrect E-mail alias. For example, if your E-mail is [email protected], enter just <b><i>johndoe</i></b>.</font>"
|
|
end if
|
|
%>
|
|
</P>
|
|
<font face="Arial"><INPUT type=submit value=Submit>
|
|
</font>
|
|
</form>
|
|
|
|
<font face="Tahoma" size="2">If you encounter problems when using this web page, please E-mail <a href="mailto:[email protected]">[email protected]</a>.</font>
|
|
|
|
</BODY>
|
|
</HTML>
|