home *** CD-ROM | disk | FTP | other *** search
/ Chip 1998 February / CHIP_2_98.iso / software / pelne / optionp / ims.cab / smaccess.asp < prev    next >
Text File  |  1997-10-15  |  10KB  |  310 lines

  1. <%'----------------------------------------------------------------------------
  2. '
  3. '
  4. '   File: smaccess.asp
  5. '
  6. '   Description: Set access authentication for Directory Security tab
  7. '
  8. '   Copyright (C) 1997 Microsoft Corporation
  9. '
  10. '------------------------------------------------------------------------------%>
  11.  
  12. <%
  13.  
  14. Const L_AuthMethods_HtmlTitle       = "Authentication Methods" 'Title of authentication dialog"
  15. Const L_AuthExp_Text                = "Select one or more Authentication Methods for this resource"
  16. Const L_AllowAnonAuth_Checkbox      = "Allow Anonymous Access"
  17. Const L_AnonAuthExp_Text            = "No User Name/Password Required"
  18. Const L_AllowBasicAuth_Checkbox     = "Basic Authentication (password is sent in clear text)"
  19. Const L_BasicAuthExp_Text           = "Allows client authentication with password sent over the network in clear text using the standard protocol authentication commands."
  20. Const L_SetDefaultAuthDomain_Text   = "Default domain for basic authentication:"
  21. Const L_AllowNTChallResp_Checkbox   = "Windows NT Challenge/Response"
  22. Const L_NTChallRespExp_Text         = "Allows client authentication using Windows NT Challenge/Response.  The client and server negotiate the Windows NT System Security Provider Interface."
  23. Const L_EnterDefaultDomain_EditBox  = "Enter the default logon domain:"
  24. Const L_ErrorPrefix_ErrorMessage    = "SMTP Error:" 'Prefix to SMTP errors encountered on this page
  25. Const L_Help_Text                   = "Help" 'Help "button"
  26. Const L_OK_Text                     = "OK"  'OK "button"
  27. Const L_Cancel_Text                 = "Cancel" 'Cancel "button"
  28. Const L_Edit_Button                 = "Edit..." 'actual button
  29. Const L_NOTSELECTED_TEXT            = "You have not selected an Authentication method, you must select one to save the values."
  30.  
  31. '----[ szFormatError ]---------------------------------------------------------
  32. '
  33. '   Description: 
  34. '       Formats an error string
  35. '   Parameters:
  36. '       ErrorObj    - the VBScript Err object
  37. '                   - Can also be error string
  38. '   Returns:
  39. '       Error String
  40. '------------------------------------------------------------------------------
  41. Function szFormatError(ErrorObj)
  42.     Dim szString
  43.     Dim szPrefix
  44.     szPrefix = L_ErrorPrefix_ErrorMessage & " "
  45.     if IsObject(ErrorObj) then
  46.         if ErrorObj.Description <> "" then
  47.             szString = szPrefix &  Server.HTMLEncode(ErrorObj.Description)
  48.         else
  49.             szString = szPrefix & Hex(ErrorObj.Number)
  50.         end if
  51.         ErrorObj.clear()
  52.     else
  53.         On Error Resume Next
  54.         szString = szPrefix & Server.HTMLEncode(CStr(ErrorObj))
  55.     end if
  56.  
  57.     'Remove unwanted new line characters
  58.     szString = Replace(szString, vbNewLine, " ", 1, -1)
  59.     szFormatError = szString
  60. End Function
  61.  
  62. '---[ SetProperty ]---------------------------------------------------------
  63. '
  64. '
  65. '  Description: 
  66. '       Set Property on an ADSI  object
  67. '  Parameters:
  68. '       ADSIObj  - the ADSI recipient object to set the property on
  69. '       szPropKey - the key identifying the property
  70. '       szPropValue - the value to set the property to
  71. '  Returns:
  72. '       -
  73. '-----------------------------------------------------------------------------
  74. Sub SetProperty(ADSIObj, szPropKey, szPropValue)
  75.     On Error Resume Next
  76.  
  77.     if IsEmpty(szPropValue) or szPropValue = "" then
  78.         ADSIObj.Get(szPropKey)
  79.         if Err.Number = E_ADS_PROPERTY_NOT_FOUND then
  80.             Err.Clear()
  81.         else
  82.             ADSIObj.PutEx 1, szPropKey, szPropValue
  83.         end if
  84.         'Otherwise data is already clear
  85.     else
  86.         ADSIObj.Put szPropKey, Array(szPropValue)
  87.     end if
  88. End Sub
  89.  
  90.  
  91. Const AuthBasicFlag                 = "AuthBasic" 
  92. Const AuthAnonFlag                  = "AuthAnonymous" 
  93. Const AuthNTLMFlag                  = "AuthNTLM"
  94. Const DefaultAuthDomain             = "SASLLogonDomain"
  95. Const E_ADS_PROPERTY_NOT_FOUND = &H8000500d
  96.  
  97.  
  98. if Request("ServiceInstance") <> "" then
  99.     Session("ServiceInstance") = Request("ServiceInstance")
  100. elseif Session("ServiceInstance") = "" then
  101.     Session("ServiceInstance") = "1"
  102. end if
  103.  
  104. if Request("svr") <> "" then
  105.     Session("svr") = Request("svr")
  106. elseif Session("svr") = "" then
  107.     Session("svr") = Request.ServerVariables("SERVER_NAME")
  108. end if
  109.  
  110.  
  111. %>
  112.  
  113. <HTML>
  114. <HEAD>
  115. <TITLE><% =L_AuthMethods_HtmlTitle%></TITLE>
  116. <SCRIPT LANGUAGE="javascript">
  117.  
  118. <%
  119.     On Error Resume Next
  120.     Dim szAnonChecked
  121.     Dim szBasicChecked
  122.     Dim szNTChecked
  123.     Dim szDefaultLogonDomain
  124.     set ServiceObj = GetObject("IIS://" & Session("svr") & "/SmtpSvc/" & Session("ServiceInstance")) 
  125.     if (Err <> 0 ) then 
  126.         %>alert("<% =szFormatError(Err)%>");<%
  127.     else
  128.         if Request("a") = "submit" then 'save data
  129.             if Request("chkAuthAnonymous") then 
  130.                 Call ServiceObj.Put(AuthAnonFlag, true)
  131.                 szAnonChecked = "CHECKED"
  132.             else
  133.                 Call ServiceObj.Put(AuthAnonFlag, false)
  134.             end if 
  135.             if Request("chkAuthBasic") then 
  136.                 Call ServiceObj.Put(AuthBasicFlag, true)
  137.                 szBasicChecked = "CHECKED"
  138.             else
  139.                 Call ServiceObj.Put(AuthBasicFlag, false)
  140.             end if 
  141.             if Request("chkAuthNT") then 
  142.                 Call ServiceObj.Put(AuthNTLMFlag, true)
  143.                 szNTChecked = "CHECKED"
  144.             else
  145.                 Call ServiceObj.Put(AuthNTLMFlag, false)
  146.             end if
  147.             Call SetProperty(ServiceObj, DefaultAuthDomain, CStr(Request("szDefaultLogonDomain")))
  148.             szDefaultLogonDomain = Request("szDefaultLogonDomain")
  149.             ServiceObj.SetInfo
  150.             szOnLoad = "OnLoad=""close();"""
  151.         else
  152.             if ServiceObj.Get(AuthAnonFlag) = true then szAnonChecked = "CHECKED"
  153.             if ServiceObj.Get(AuthBasicFlag) = true then szBasicChecked = "CHECKED"
  154.             if ServiceObj.Get(AuthNTLMFlag) = true then szNTChecked = "CHECKED"
  155.             szDefaultLogonDomain = ServiceObj.Get(DefaultAuthDomain)
  156.         end if
  157.         if Err.Number = E_ADS_PROPERTY_NOT_FOUND then Err.Clear()
  158.         if (Err <> 0 ) then 
  159.             szOnLoad = ""
  160.             %>alert("<% =szFormatError(Err)%>");<%
  161.         end if
  162.         Set ServiceObj = nothing
  163.     end if 
  164. %>
  165.  
  166.  
  167. <% REM Javascript function editItem %>
  168. function SetDomain()
  169. {
  170.     var name;
  171.     name = prompt("<% =L_EnterDefaultDomain_EditBox%>",document.userform.szDefaultLogonDomain.value);
  172.     document.userform.szDefaultLogonDomain.value = name;
  173. }
  174.  
  175. function helpBox() 
  176. {
  177.     window.open("help/smsech.htm","help","toolbar=no,scrollbars=yes,directories=no,menubar=no,width=300,height=425");
  178. }
  179.  
  180. function onOK()
  181. {
  182.     if(checkControls())
  183.     {
  184.         document.userform.submit();
  185.     }
  186. }
  187.  
  188. function checkControls()
  189. {
  190.     uform = document.userform;
  191.     if((uform.chkAuthNT.checked != true) && (uform.chkAuthBasic.checked != true) && (uform.chkAuthAnonymous.checked != true))
  192.     {
  193.         alert("<% = L_NOTSELECTED_TEXT %>");
  194.         return false;
  195.     }
  196.  
  197.     return true;
  198.  
  199. }
  200.  
  201. </SCRIPT>
  202.  
  203. </HEAD>
  204. <BODY BACKGROUND="images\black.gif" LINK="#FFFFFF" <% =szOnLoad%>>
  205. <FORM NAME="userform" action="smaccess.asp" METHOD=POST>
  206. <INPUT TYPE=HIDDEN NAME="szDefaultLogonDomain" VALUE="<% =szDefaultLogonDomain%>">
  207. <INPUT TYPE=HIDDEN NAME="a" VALUE="submit">
  208. <TABLE BORDER=1 BGCOLOR="#CCCCCC" WIDTH=100% CELLPADDING=10>
  209.  
  210. <TR><TD>
  211. <P>
  212. <TABLE BORDER="0" BGCOLOR="#CCCCCC" WIDTH="99%" CELLPADDING=5 CELLSPACING="5" ROWS=8 COLS=2>
  213.     <TR>
  214.         <TD COLSPAN=2><% =L_AuthExp_Text%></TD>
  215.     </TR>
  216.     <TR>
  217.         <TD><INPUT TYPE="CHECKBOX" NAME="chkAuthAnonymous" <% =szAnonChecked%> VALUE="on" ></TD>
  218.         <TD><% =L_AllowAnonAuth_Checkbox%></TD>
  219.     </TR>
  220.     <TR>
  221.         <TD> </TD>
  222.         <TD><% =L_AnonAuthExp_Text%></TD>
  223.     </TR>
  224.     <TR>
  225.         <TD><INPUT TYPE="CHECKBOX" NAME="chkAuthBasic" <% =szBasicChecked%> VALUE="on"></TD>
  226.         <TD><% =L_AllowBasicAuth_Checkbox%></TD>
  227.     </TR>
  228.     <TR>
  229.         <TD> </TD>
  230.         <TD><% =L_BasicAuthExp_Text%></TD>
  231.     </TR>
  232.     <TR>
  233.         <TD> </TD>
  234.         <TD>
  235.             <% =L_SetDefaultAuthDomain_Text%>
  236.               
  237.             <INPUT TYPE=BUTTON NAME="edit" VALUE="<% =L_Edit_Button%>" OnClick="SetDomain();">
  238.         </TD>
  239.     </TR>
  240.     <TR>
  241.         <TD><INPUT TYPE="CHECKBOX" NAME="chkAuthNT" <% =szNTChecked%> VALUE="on" ></TD>
  242.         <TD><% =L_AllowNTChallResp_Checkbox%></TD>
  243.     </TR>
  244.     <TR>
  245.         <TD> </TD>
  246.         <TD><% =L_NTChallRespExp_Text%></TD>
  247.     </TR>
  248. </TABLE>
  249. <P>
  250. </TD></TR>
  251. </TABLE>
  252. <P>
  253. <TABLE ALIGN="right" CELLPADDING=1 CELLSPACING=1>
  254.  
  255. <TR>
  256.     <TD><TABLE VALIGN="top" BORDER=0 CELLPADDING=5 CELLSPACING=0 BGCOLOR="#FFCC00">
  257.  
  258.         <TR>
  259.             <TD VALIGN="middle">
  260.                 <FONT FACE="Arial" SIZE=2>
  261.                 <B><A HREF="javascript:onOK();">
  262.                 <IMG SRC="images/gnicok.gif" BORDER=0 ALIGN="top" HEIGHT=16 WIDTH=16></A>
  263.                 <A HREF="javascript:onOK();"><% =L_OK_Text%></A></B>
  264.                 </FONT>
  265.             </TD>    
  266.  
  267.         </TR>
  268.         
  269.     </TABLE></TD>
  270.  
  271.     <TD><TABLE VALIGN="top" BORDER=0 CELLPADDING=5 CELLSPACING=0 BGCOLOR="#FFCC00">
  272.  
  273.         <TR>
  274.                 
  275.             <TD VALIGN="middle">
  276.                 <FONT FACE="Arial" SIZE=2>
  277.                 <B><A HREF="javascript:close();">
  278.                 <IMG SRC="images/gniccncl.gif" BORDER=0 ALIGN="top" HEIGHT=16 WIDTH=16></A>
  279.                 <A HREF="javascript:close();"><% =L_Cancel_Text%></A></B>
  280.                 </FONT>
  281.             </TD>    
  282.  
  283.         </TR>
  284.         
  285.     </TABLE></TD>
  286.  
  287.     <TD><TABLE VALIGN="top" BORDER=0 CELLPADDING=5 CELLSPACING=0 BGCOLOR="#FFCC00">
  288.  
  289.         <TR>
  290.                 
  291.             <TD VALIGN="middle">
  292.                 <FONT FACE="Arial" SIZE=2><A HREF="javascript:helpBox();">
  293.                 <IMG SRC="images/gnichelp.gif" BORDER=0 ALIGN="top" HEIGHT=16 WIDTH=16></A>
  294.                 <B><A HREF="javascript:helpBox();"><% =L_Help_Text%></A></B>
  295.                 </FONT>
  296.             </TD>    
  297.  
  298.         </TR>
  299.         
  300.     </TABLE></TD>
  301.  
  302.     <TD> </TD>
  303.  
  304. </TR>
  305. </TABLE>
  306. </FORM>
  307. </BODY>
  308. </HTML>
  309.  
  310.