Сделайте вход в форму для электронной почты на веб-сайте, asp.net
У меня есть страница входа в Outlook по электронной почте, в которой есть поля имени пользователя и пароля, чтобы вы могли войти в свой почтовый ящик, который был предоставлен моей хостинговой компанией.
Мне нужен способ разместить эти поля на моем главном веб-сайте (с поддержкой asp.net mvc), а затем перенаправить пользователя на его почтовый ящик с использованием введенных учетных данных?
как это возможно (безопасным способом, конечно)?
я попробовал следующий HTML-код, который был скопирован с исходного сайта:
<html>
<body>
<form autocomplete="off" name="logonForm" method="POST" action="https://mail.moda.gov.sa/OWA/owaauth.dll">
<input type="hidden" value="https://mail.moda.gov.sa/OWA/" name="destination">
<input type="hidden" value="4" name="flags">
<input type="hidden" value="0" name="forcedownlevel">
<table cellspacing="0" cellpadding="0" align="center" id="tblMain">
<tbody><tr>
<td colspan="3">
<table cellspacing="0" cellpadding="0" class="tblLgn">
<tbody><tr>
<td class="lgnTL"><img alt="" src="/owa/8.2.247.2/themes/base/lgntopl.gif"></td>
<td class="lgnTM"></td>
<td class="lgnTR"><img alt="" src="/owa/8.2.247.2/themes/base/lgntopr.gif"></td>
</tr>
</tbody></table>
</td>
</tr>
<tr>
<td id="mdLft"> </td>
<td id="mdMid">
<table class="mid" id="tblMid">
<tbody><tr>
<td class="expl" id="expltxt">
</td>
</tr>
<tr><td><hr></td></tr>
<tr>
<td>
<table class="nonMSIE">
<colgroup><col>
<col class="w100">
</colgroup><tbody><tr id="trSec">
<td colspan="2">
Security
‎(
<a onclick="clkExp('lnkShwSec')" id="lnkShwSec" href="#">
show explanation
</a>
<a style="display:none" onclick="clkExp('lnkHdSec')" id="lnkHdSec" href="#">
hide explanation
</a>
)‎
</td>
</tr>
<tr>
<td><input type="radio" checked="" onclick="clkSec()" class="rdo" value="0" name="trusted" id="rdoPblc"></td>
<td><label for="rdoPblc">This is a public or shared computer</label></td>
</tr>
<tr style="display:none" class="expl" id="trPubExp">
<td></td>
<td>Select this option if you use Outlook Web Access on a public computer. Be sure to log off when you have finished using Outlook Web Access and close all windows to end your session.</td>
</tr>
<tr>
<td><input type="radio" onclick="clkSec()" class="rdo" value="4" name="trusted" id="rdoPrvt"></td>
<td><label for="rdoPrvt">This is a private computer</label></td>
</tr>
<tr style="display:none" class="expl" id="trPrvtExp">
<td></td>
<td>Select this option if you are the only person who uses this computer. Your server will allow a longer period of inactivity before logging you off.</td>
</tr>
<tr style="" class="wrng" id="trPrvtWrn">
<td></td>
<td>Warning: By selecting this option, you confirm that this computer complies with your organization's security policy.</td>
</tr>
</tbody></table>
</td>
</tr>
<tr><td><hr></td></tr>
<tr>
<td>
<table class="nonMSIE">
<colgroup><col>
<col class="w100">
</colgroup><tbody><tr>
<td><input type="checkbox" checked="" disabled="" onclick="clkBsc();" class="rdo" id="chkBsc"></td>
<td nowrap=""><label for="chkBsc">Use Outlook Web Access Light</label></td>
</tr>
<tr class="disBsc" id="trBscExp">
<td></td>
<td>The Light client provides fewer features and is sometimes faster. Use the Light client if you are on a slow connection or using a computer with unusually strict browser security settings. If you are using a browser other than Internet Explorer 6 or later, you can only use the Light client.</td>
</tr>
</tbody></table>
</td>
</tr>
<tr><td><hr></td></tr>
<tr>
<td>
<table class="nonMSIE">
<colgroup><col class="nowrap">
<col class="w100">
<col>
</colgroup><tbody><tr>
<td nowrap=""><label for="username">User name:</label></td>
<td class="txtpad"><input type="text" class="txt" name="username" id="username"></td>
</tr>
<tr>
<td nowrap=""><label for="password">Password:</label></td>
<td class="txtpad"><input type="password" onfocus="g_fFcs=0" class="txt" name="password" id="password"></td>
</tr>
<tr>
<td align="right" class="txtpad" colspan="2">
<input type="submit" onclick="clkLgn()" value="Log On" class="btn">
<input type="hidden" value="1" name="isUtf8">
</td>
</tr>
</tbody></table>
</td>
</tr>
<tr><td><hr></td></tr>
<tr class="wrng" id="trInvCrd">
<td>The user name or password that you entered is not valid. Try entering it again.</td>
</tr>
</tbody></table>
<table style="display:none" class="mid" id="tblMid2">
<tbody><tr><td><hr></td></tr>
<tr>
<td><br>Please enable cookies for this web site.<br><br>Cookies are currently disabled by your browser. Outlook Web Access requires that cookies be enabled. <br><br>If you are using Microsoft Internet Explorer 6 or later, open Internet Options from the Tools menu. Click the Privacy tab, and then click Sites. Type the address for Outlook Web Access into the field, click Allow, and then click OK to save your changes.<br><br><br></td>
</tr>
<tr><td><hr></td></tr>
<tr>
<td align="right" class="txtpad">
<input type="button" onclick="clkRtry()" value="Retry" style="float: right" class="btn">
</td>
</tr>
</tbody></table>
<table class="mid tblConn">
<tbody><tr>
<td align="right" class="tdConnImg" rowspan="2"><img alt="" src="/owa/8.2.247.2/themes/base/lgnexlogo.gif" style="vertical-align:top"></td>
<td class="tdConn">Connected to Microsoft Exchange</td>
</tr>
<tr>
<td class="tdCopy">© 2007 Microsoft Corporation. All rights reserved. </td>
</tr>
</tbody></table>
</td>
<td id="mdRt"> </td>
</tr>
<tr>
<td colspan="3">
<table cellspacing="0" cellpadding="0" class="tblLgn">
<tbody><tr>
<td class="lgnBL"><img alt="" src="/owa/8.2.247.2/themes/base/lgnbotl.gif"></td>
<td class="lgnBM"></td>
<td class="lgnBR"><img alt="" src="/owa/8.2.247.2/themes/base/lgnbotr.gif"></td>
</tr>
</tbody></table>
</td>
</tr>
</tbody></table>
</form>
</body>
</html>
3 ответа
Это работает?
<form action="https://mail.moda.gov.sa/OWA/auth/owaauth.dll" method="POST" name="logonForm" autocomplete="off">
<input name="destination" value="https://mail.moda.gov.sa/OWA/" type="hidden">
<input name="flags" value="0" type="hidden">
<input name="forcedownlevel" value="0" type="hidden">
<input id="rdoPblc" name="trusted" value="0" class="rdo" checked="checked" type="radio">
<label for="rdoPblc">This is a public or shared computer</label><br />
<input id="rdoPrvt" name="trusted" value="4" class="rdo" type="radio">
<label for="rdoPrvt">This is a private computer</label><br /><br />
<input id="chkBsc" class="rdo" checked="checked" type="checkbox"></td>
<label for="chkBsc">Use Outlook Web Access Light</label><br /><br />
<label for="username">User name:</label>
<input id="username" name="username" class="txt" type="text"><br />
<label for="password">Password:</label>
<input id="password" name="password" class="txt" type="password"><br />
<input class="btn" value="Log On" type="submit">
<input name="isUtf8" value="1" type="hidden">
</form>
Пока ваш сайт заслуживает доверия, он должен быть безопасным.
Вы можете попробовать перепроектировать html-форму, которая используется для входа в ваш почтовый ящик. Если вы создаете точно такую же форму на вашем сайте, это может сработать. Тем не менее, работа не гарантируется, веб-сайт может проверить реферер или использовать другую контрольную сумму, чтобы узнать, откуда возникла HTTP POST.
[редактировать после получения дополнительной информации] Два замечания:
1) может быть, этот пост может помочь вам: Отправка формы входа OWA из Java
2) попробуйте использовать Fiddler и сравните два запроса (официальный и ваш). Посмотрите, если какие-либо аргументы отсутствуют. Вы скопировали весь JavaScript и т. Д.
Простым способом может быть размещение на вашем сайте iFrame, который ссылается на страницу входа в папку входящих сообщений, но тогда, я думаю, вы уже рассмотрели это.
Я предполагаю здесь, но, возможно, у вас есть сайт, на который пользователи заходят. Тем не менее, вы размещаете их электронную почту на другом сайте, но не хотите, чтобы им приходилось дважды входить в систему, чтобы получить доступ к своей электронной почте.
Михил очень хорошо сказал, что веб-сайт может проверить, откуда взялась HTTP Post. Если они проверят, вам придется поговорить с ними. Может быть, они могут добавить вас в список утвержденных URL.